#include <iostream.h> // Zadanie 7.2
#include <fstream.h>
#include <conio.h>

const int rozmiar = 10;

class matrix // definicja klasy matrix
{
 public:
 czytaj_dane(int tablica[rozmiar][rozmiar], int rozmiar);
 zapisz_dane_do_pliku(int tablica[rozmiar][rozmiar], int rozmiar);
 czytaj_dane_z_pliku(int tablica1[rozmiar][rozmiar], int rozmiar);
};

matrix::czytaj_dane(int tablica[rozmiar][rozmiar], int rozmiar)
{
 int i, j;

 for (i = 0; i < rozmiar; i++) // tworzymy tablice 10x10
 {
  for (j = 0; j < rozmiar; j++)
  {
   if (i == j)
	tablica[i][j] = 1;
   else
	tablica[i][j] = 0;
  } // j
 } // i
}

matrix::zapisz_dane_do_pliku(int tablica[rozmiar][rozmiar], int rozmiar)
{
 int i, j;

 cout << "Zapisujemy tablice 10x10 do pliku." << endl;

 ofstream plik_zapis("dane.txt"); // tworzymy i otwieramy plik do zapisu

 for (i = 0; i < rozmiar; i++) // zapisujemy tablice 10x10
 {
  for (j = 0; j < rozmiar; j++)
  {
   cout << tablica[i][j] << " ";
   plik_zapis << tablica[i][j];
  } // j
  cout << endl;
 } // i
 plik_zapis.close(); // zamykamy plik
}

matrix::czytaj_dane_z_pliku(int tablica1[rozmiar][rozmiar], int rozmiar)
{
 int i, j;

 cout << endl;
 cout << "Odczytujemy tablice 10x10 z pliku." << endl;

 ifstream plik_odczyt("dane.txt"); // otwieramy istniejacy plik

 for (i = 0; i < rozmiar; i++)
 {
  for (j = 0; j < rozmiar; j++)
  {
   plik_odczyt >> tablica1[i][j]; // odcztujemy tablice z pliku
   cout << tablica1[i][j] << " ";
  } // j
  cout << endl;
 } // i
 plik_odczyt.close(); //zamykamy plik
}

main()
{
 int tab[rozmiar][rozmiar];

 matrix matrix1; // powstaje obiekt matrix1

 matrix1.czytaj_dane(tab, rozmiar);
 matrix1.zapisz_dane_do_pliku(tab, rozmiar);
 matrix1.czytaj_dane_z_pliku(tab, rozmiar);

getch(); // czeka na nacisniecie dowolnego klawisza
}
